﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using RN.ERP.DTO;

namespace RN.ERP
{
    // 注意: 使用“重构”菜单上的“重命名”命令，可以同时更改代码和配置文件中的接口名“IOrderService”。
    [ServiceContract]
    public interface IOrderService
    {
        [OperationContract]
        string GetOrders(string queryCondition, Guid userGuid, int pageCount, int pageSize);
        [OperationContract]
        int GetOrderCount(string queryCondition, Guid userGuid);
        [OperationContract]
        string GetOrderInfo(string orderId);
        [OperationContract]
        string GetProducts(string query, string areacode);
        [OperationContract]
        string AddOrder(string payInfo);
        [OperationContract]
        string EditOrder(string payInfo);
        [OperationContract]
        string DeleteOrder(Guid orderGuid);
        [OperationContract]
        string SubmitOrder(string payInfo);
        [OperationContract]
        string GetInvoicesList(string queryCondition, int pageCount, int pageSize);
        [OperationContract]
        string AddInvoices(string relation);
        [OperationContract]
        int GetInvoicesCount(string queryCondition);
        [OperationContract]
        byte[] GetCorpCAPdf(Guid corpUserGuid);
        [OperationContract]
        byte[] GetPsnCAPdf(Guid empGuid);
        [OperationContract]
        byte[] GetPsnKeyPdf(Guid empGuid);
        [OperationContract]
        string ValidateKeyStatus(int caSubId, int dogId, string name);
        [OperationContract]
        string UpdateCert(int caSubId,
            string Entity,
            Guid EntityGuid,
            string EntityName,
            string KeySN,
            string operation);
        [OperationContract]
        string VerifyOrder(List<Guid> orderGuid, Guid userGuid);
        [OperationContract]
        string GetProductGroup();
        [OperationContract]
        string GetProductsByUserGuid(string userGuid, string areacode, int type);
        [OperationContract]
        string OrderAudit(List<Guid> orderGuid, Guid userGuid);
        [OperationContract]
        string GetZBPayList(string queryCondition, int pageCount, int pageSize);
        [OperationContract]
        string GetZBPayCount(string queryCondition);
        [OperationContract]
        string PaySaveZBRemark(int ID, bool Processed, string Remark, int type);
        [OperationContract]
        string GetZBRemark(int ID, int type);
        [OperationContract]
        string GetCAInfo(string corpUserGuid);

        #region 通用

        [OperationContract]
        string GetCommonOrders(string queryCondition,Guid userGuid,int pageCount,int pageSize);
        [OperationContract]
        int GetCommonOrderCount(string queryCondition, Guid userGuid);
        [OperationContract]
        string GetCommonOrderInfo(string orderId);
        [OperationContract]
        string AddCommonOrder(string payInfo);
        [OperationContract]
        string EditCommonOrder(string payInfo);
        [OperationContract]
        string DeleteCommonOrder(Guid orderGuid);
        [OperationContract]
        string SubmitCommonOrder(string payInfo);
        /// <summary>
        /// 获取做key信息列表
        /// </summary>
        /// <param name="condition"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <param name="count"></param>
        /// <returns></returns>
        [OperationContract]
         string GetMakeKeyInfos(string condition, int pageIndex, int pageSize, out int count);
        #endregion
    }
}
